B25095 —————-

Plot 1

Plot2

Plot 3

## List of 3
##  $ legend.position : chr "bottom"
##  $ legend.direction: chr "vertical"
##  $ fill            :List of 21
##   ..$ title         : list()
##   .. ..- attr(*, "class")= chr "waiver"
##   ..$ title.position: NULL
##   ..$ title.theme   : NULL
##   ..$ title.hjust   : NULL
##   ..$ title.vjust   : NULL
##   ..$ label         : logi TRUE
##   ..$ label.position: NULL
##   ..$ label.theme   : NULL
##   ..$ label.hjust   : NULL
##   ..$ label.vjust   : NULL
##   ..$ keywidth      : NULL
##   ..$ keyheight     : NULL
##   ..$ direction     : NULL
##   ..$ override.aes  : Named list()
##   ..$ nrow          : NULL
##   ..$ ncol          : NULL
##   ..$ byrow         : logi FALSE
##   ..$ reverse       : logi TRUE
##   ..$ order         : num 0
##   ..$ available_aes : chr "any"
##   ..$ name          : chr "legend"
##   ..- attr(*, "class")= chr [1:2] "guide" "legend"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi FALSE
##  - attr(*, "validate")= logi TRUE

Plot4

## List of 3
##  $ legend.position : chr "bottom"
##  $ legend.direction: chr "vertical"
##  $ fill            :List of 21
##   ..$ title         : list()
##   .. ..- attr(*, "class")= chr "waiver"
##   ..$ title.position: NULL
##   ..$ title.theme   : NULL
##   ..$ title.hjust   : NULL
##   ..$ title.vjust   : NULL
##   ..$ label         : logi TRUE
##   ..$ label.position: NULL
##   ..$ label.theme   : NULL
##   ..$ label.hjust   : NULL
##   ..$ label.vjust   : NULL
##   ..$ keywidth      : NULL
##   ..$ keyheight     : NULL
##   ..$ direction     : NULL
##   ..$ override.aes  : Named list()
##   ..$ nrow          : NULL
##   ..$ ncol          : NULL
##   ..$ byrow         : logi FALSE
##   ..$ reverse       : logi TRUE
##   ..$ order         : num 0
##   ..$ available_aes : chr "any"
##   ..$ name          : chr "legend"
##   ..- attr(*, "class")= chr [1:2] "guide" "legend"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi FALSE
##  - attr(*, "validate")= logi TRUE

Plot5

## List of 3
##  $ legend.position : chr "bottom"
##  $ legend.direction: chr "vertical"
##  $ fill            :List of 21
##   ..$ title         : list()
##   .. ..- attr(*, "class")= chr "waiver"
##   ..$ title.position: NULL
##   ..$ title.theme   : NULL
##   ..$ title.hjust   : NULL
##   ..$ title.vjust   : NULL
##   ..$ label         : logi TRUE
##   ..$ label.position: NULL
##   ..$ label.theme   : NULL
##   ..$ label.hjust   : NULL
##   ..$ label.vjust   : NULL
##   ..$ keywidth      : NULL
##   ..$ keyheight     : NULL
##   ..$ direction     : NULL
##   ..$ override.aes  : Named list()
##   ..$ nrow          : NULL
##   ..$ ncol          : NULL
##   ..$ byrow         : logi FALSE
##   ..$ reverse       : logi TRUE
##   ..$ order         : num 0
##   ..$ available_aes : chr "any"
##   ..$ name          : chr "legend"
##   ..- attr(*, "class")= chr [1:2] "guide" "legend"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi FALSE
##  - attr(*, "validate")= logi TRUE

Plot6

## List of 3
##  $ legend.position : chr "bottom"
##  $ legend.direction: chr "vertical"
##  $ fill            :List of 21
##   ..$ title         : list()
##   .. ..- attr(*, "class")= chr "waiver"
##   ..$ title.position: NULL
##   ..$ title.theme   : NULL
##   ..$ title.hjust   : NULL
##   ..$ title.vjust   : NULL
##   ..$ label         : logi TRUE
##   ..$ label.position: NULL
##   ..$ label.theme   : NULL
##   ..$ label.hjust   : NULL
##   ..$ label.vjust   : NULL
##   ..$ keywidth      : NULL
##   ..$ keyheight     : NULL
##   ..$ direction     : NULL
##   ..$ override.aes  : Named list()
##   ..$ nrow          : NULL
##   ..$ ncol          : NULL
##   ..$ byrow         : logi FALSE
##   ..$ reverse       : logi TRUE
##   ..$ order         : num 0
##   ..$ available_aes : chr "any"
##   ..$ name          : chr "legend"
##   ..- attr(*, "class")= chr [1:2] "guide" "legend"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi FALSE
##  - attr(*, "validate")= logi TRUE

Owner Costs Burden

## # A tibble: 1 × 5
##   Burdened Householders Total_Burden    Excess Burdened_perc
##      <dbl>        <dbl>        <dbl>     <dbl>         <dbl>
## 1     1281         3066    11725938. -38724750         0.418

B25106 —————

Plot 7

Plot 8

## List of 3
##  $ legend.position : chr "bottom"
##  $ legend.direction: chr "vertical"
##  $ fill            :List of 21
##   ..$ title         : list()
##   .. ..- attr(*, "class")= chr "waiver"
##   ..$ title.position: NULL
##   ..$ title.theme   : NULL
##   ..$ title.hjust   : NULL
##   ..$ title.vjust   : NULL
##   ..$ label         : logi TRUE
##   ..$ label.position: NULL
##   ..$ label.theme   : NULL
##   ..$ label.hjust   : NULL
##   ..$ label.vjust   : NULL
##   ..$ keywidth      : NULL
##   ..$ keyheight     : NULL
##   ..$ direction     : NULL
##   ..$ override.aes  : Named list()
##   ..$ nrow          : NULL
##   ..$ ncol          : NULL
##   ..$ byrow         : logi FALSE
##   ..$ reverse       : logi TRUE
##   ..$ order         : num 0
##   ..$ available_aes : chr "any"
##   ..$ name          : chr "legend"
##   ..- attr(*, "class")= chr [1:2] "guide" "legend"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi FALSE
##  - attr(*, "validate")= logi TRUE

Plot 9

## List of 3
##  $ legend.position : chr "bottom"
##  $ legend.direction: chr "vertical"
##  $ fill            :List of 21
##   ..$ title         : list()
##   .. ..- attr(*, "class")= chr "waiver"
##   ..$ title.position: NULL
##   ..$ title.theme   : NULL
##   ..$ title.hjust   : NULL
##   ..$ title.vjust   : NULL
##   ..$ label         : logi TRUE
##   ..$ label.position: NULL
##   ..$ label.theme   : NULL
##   ..$ label.hjust   : NULL
##   ..$ label.vjust   : NULL
##   ..$ keywidth      : NULL
##   ..$ keyheight     : NULL
##   ..$ direction     : NULL
##   ..$ override.aes  : Named list()
##   ..$ nrow          : NULL
##   ..$ ncol          : NULL
##   ..$ byrow         : logi FALSE
##   ..$ reverse       : logi TRUE
##   ..$ order         : num 0
##   ..$ available_aes : chr "any"
##   ..$ name          : chr "legend"
##   ..- attr(*, "class")= chr [1:2] "guide" "legend"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi FALSE
##  - attr(*, "validate")= logi TRUE

Plot 10

Plot 11

## List of 3
##  $ legend.position : chr "bottom"
##  $ legend.direction: chr "vertical"
##  $ fill            :List of 21
##   ..$ title         : list()
##   .. ..- attr(*, "class")= chr "waiver"
##   ..$ title.position: NULL
##   ..$ title.theme   : NULL
##   ..$ title.hjust   : NULL
##   ..$ title.vjust   : NULL
##   ..$ label         : logi TRUE
##   ..$ label.position: NULL
##   ..$ label.theme   : NULL
##   ..$ label.hjust   : NULL
##   ..$ label.vjust   : NULL
##   ..$ keywidth      : NULL
##   ..$ keyheight     : NULL
##   ..$ direction     : NULL
##   ..$ override.aes  : Named list()
##   ..$ nrow          : NULL
##   ..$ ncol          : NULL
##   ..$ byrow         : logi FALSE
##   ..$ reverse       : logi TRUE
##   ..$ order         : num 0
##   ..$ available_aes : chr "any"
##   ..$ name          : chr "legend"
##   ..- attr(*, "class")= chr [1:2] "guide" "legend"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi FALSE
##  - attr(*, "validate")= logi TRUE

Plot 12

## List of 3
##  $ legend.position : chr "bottom"
##  $ legend.direction: chr "vertical"
##  $ fill            :List of 21
##   ..$ title         : list()
##   .. ..- attr(*, "class")= chr "waiver"
##   ..$ title.position: NULL
##   ..$ title.theme   : NULL
##   ..$ title.hjust   : NULL
##   ..$ title.vjust   : NULL
##   ..$ label         : logi TRUE
##   ..$ label.position: NULL
##   ..$ label.theme   : NULL
##   ..$ label.hjust   : NULL
##   ..$ label.vjust   : NULL
##   ..$ keywidth      : NULL
##   ..$ keyheight     : NULL
##   ..$ direction     : NULL
##   ..$ override.aes  : Named list()
##   ..$ nrow          : NULL
##   ..$ ncol          : NULL
##   ..$ byrow         : logi FALSE
##   ..$ reverse       : logi TRUE
##   ..$ order         : num 0
##   ..$ available_aes : chr "any"
##   ..$ name          : chr "legend"
##   ..- attr(*, "class")= chr [1:2] "guide" "legend"
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi FALSE
##  - attr(*, "validate")= logi TRUE

Housing Burden for Owner-occupied and Renter-occupied Householders

## # A tibble: 2 × 6
##   Tenure          Burdened Householders Total_Burden     Excess Burdened_perc
##   <chr>              <dbl>        <dbl>        <dbl>      <dbl>         <dbl>
## 1 Owner-occupied      1281         3066    10636071. -221261000         0.418
## 2 Renter-occupied     2583         4466    16432143. -145161000         0.578

————————————–

Part II – San Mateo County Property data (exemption)

mapping for all zoning vs.Owner

mapping for R-LD vs. Owner

Area (Acres) for Owner-occupied property in East Palo Alto

Area (Acres) for Renter-occupied Property in East Palo Alto

APN_AREA for Owner-occupied Property in East Palo Alto

APN_AREA for Renter-occupied property in East Palo Alto

Shape_Area for Owner-occupied Property in East Palo Alto

Shape_Area for Renter-occupied Property in East Palo Alto

Shape_Length for Owner-occupied Property in East Palo Alto

Shape_Length for Renter-occupied Property in East Palo Alto

Owner_Percentage in 2018/2019

## [1] 0.3945305
## [1] 404904.8
## [1] 397908.2
## [1] 791.6243
## [1] 7692065
## [1] 10720807
## [1] 3571467
## [1] 3442250
## [1] 1815.003
## [1] 26110897
## [1] 32564796

PART I: 1. Plot 1 and 3 shows that most of the householders in East Palo Alto (EPA) have monthly owner costs less than 20% of their household income. The second highest number of householders are those who have monthly owner costs more than 50% of their household income. 2. Plot 2 and 4 shows over 40% of EPA householders have monthly owner costs less than 20% of their household income. Over 20% of householders have monthly owner costs more than 50% of their household income. Among them, there are roughly 5% having household income less than $20,000. Over 20% of householders have household income greater than 150,000 and thus their owner costs are less than 20%. 3. Based on Plot 5, for the group with household income greater than 150,000, the monthly owner costs are mostly under 35%, in particular, below 25%. For the group with household income between $100,000~$150,000, owner costs mostly fall between 30%~ 50%, with a portion of people having lower burden percentage under 30%. People with household income between $75,000~$100,000 also suffer from similar burden percentage between 35%~50%. 4. Plot 6 confirms that as the income decreases, the burden percentage increases. Especially, if the income falls under $150,000, the burden percentage largely go beyond 30%. 5. From owner costs data, there are 1281 households out of 3066 having housing burden greater than 30% (burden threshold). The total burden amount is $11,725,938. The excess amount is $38,724,750. The burdened percentage is 41.8%. 6. Given Plot 7 and 8, for both owner-occupied and renter-occupied households, most of them have housing costs $75,000 or more. 7. Plot 9 shows that for the renter-occupied group, most households have housing costs between $20,000~$35,000, followed by $35,000~$50,000, and <$20,000. The owner-occupied group tends to have high housing costs beyond $50,000. 8. Plot 10 and 11 assessed that there is a high percentage of households having high housing costs beyond $50,000 for both owner-occupied and renter-occupied groups. 9. Plot 12 displays that a high percentage of the renter-occupied has housing costs below $50,000. 10. Based on the housing burden data, 1281 households out of 3066 have housing burden greater than 30% (burden threshold). The total burden amount is $10,636,071. The excess amount is $221,261,000. The burdened percentage is 41.8%. While for the renter-occupied group, 2583 out of 4466 renter-occupied households have housing burden greater than 30% (burden threshold). The total burden amount is $16,432,143. The excess amount is $145,161,000. The burdened percentage is 57.78%.

PART II: 1. Map 1 is the mapping for EPA zoning. 2. For map 2, it shows owners with exemption $7000 or $5600 scatter pretty much homogeneously in the EPA. 3. If only R-LD zone is considered, similarly, the owners scatter homogeneously in the EPA. 4. Map 4 is showing the areas in acres from 2018/2019 data for owner-occupied property. There are some larger areas in the southern region of the EPA. 5. Map 5 shows the areas in acres from 2018/2019 data for renter-occupied property. There are really large areas in the east region especially, and some in south-west part of the EPA. 6. Map 6 and map 8 present 2018/2019 APN area and Shape area, respectively, for owner-occupied property. Both maps shows similar patterns with some larger areas in the south regions. 7. Map 7 and map 9 present 2018/2019 APN area and Shape area, respectively, for renter-occupied property, which demonstrate really large areas in the east and some in the south-west. 8. Map 10 and 11 give the Shape length for both owner-occupied and renter-occupied properties, which also show pretty much the same patterns as in the APN areas or Shape length maps. 9. In EPA, the owner-occupied property is about 39.4%. 10. For owner-occupied properties in 2018/2019, Average Assessed Value = $404,905. Average Net Value = $397,908. Total Acres = 791.6243. Total taxes = $7,692,065. Total charge= $10,720,807. 11. For renter-occupied properties in 2018/2019, Average Assessed Value = $3,571,467. Average Net Value = $3,442,250. Total Acres = 1815.003. Total taxes =\(26,110,897. Total charge=\) 32,564,796. The renter-occupied property is almost 9 times of the value for the owner-occupied, and 2 times of the area for the owner-occupied. The renter-occupied property receives 2 times more of the total taxes and total charges as compared to the owner-occupied property. 12. Plot 1 shows that the assessed value and net value for the properties actually increase with year. Both the assessed value and net value of property become double in 3 years. 13. Plot of total areas by zoning shows that R-LD has the largest total areas and, on the contrary, MUC has the smallest. 14. Total areas (in acres) for owner-occupied property are much lesser than for the renter-occupied. The areas for owner-occupied property decrease with year, which is opposite to the renter-occupied. 15. Zone PI makes the lowest amount of total taxes, followed by Zone RM. Zone R-LD generates the highest amount of total taxes, followed by Zone C-O, which increases with year. 16. The renter-occupied property contributes the higher total taxes than the owner-occupied and the taxes amount increases rapidly in 2018 and 2019.
17. Zone R-LD generates the highest amount of total charges. Zone RM generates the lowest amount of total charges. 18. For the owner-occupied, PR has the lowest assessed value and net value, followed by MUL. While, waterfront office has the highest assessed value and net value, followed by PUD. 19. For the renter-occupied, RM has the lowest assessed value and PI has the lowest net value, followed by PR and RM, respectively. While, CO has the highest assessed value and net value, followed by C-G.

Generally speaking, the EPA does have a problem in high property price which may cause people to rent a house instead of buying. Even though less than 40% of people own properties in EPA, the house burden is high even for householders with high income. It seems to me that the OPA is essential to the renters, but the extra costs due to OPA should be also considered for house owners to prevent from their suffering with existing high owner costs. The OPA may affect the total taxes obtained for the government to some degree. To reduce the loss on total taxes and total charges, whether to apply OPA to less affecting zone instead of R-LD may be considered further.